package com.tosit.bmx.service.admin;

import com.tosit.bmx.domian.*;

import java.util.List;

/**
 * 车型，科目，题型，套题管理类
 *
 * @author tsl
 * @create 2018-04-24 14:19
 **/
public interface CarManagerService {
    Integer addCartype(Cartype cartype);

    Integer removeCartype(Integer id);

    Integer modifyCartype(Cartype cartype);

    Integer addCourse(Course course);

    Integer removeCourse(Integer id);

    Integer modifyCourse(Course course);

    Integer addExertype(Exertype exertype);

    Integer removeExertype(Integer id);

    Integer modifyExertype(Exertype exertype);

    Integer addSubject(Subject subject);

    Integer removeSubject(Integer id);

    Integer modifySubject(Subject subject);

    Integer addSecondType(SecondType secondType);

    Integer removeSecondType(Integer id);

    Integer modifySecondType(SecondType secondType);
    /**
     * 删除一个或多个套题
     *
     * @param ids
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    Integer removeSecondTypes(List<Integer> ids);
    /**
     *  复制一个或多个套题到另一个或几个题型里
     * @author tsl
     * @date 2018/4/25 9:40
     * @param secondTypes list(id(复制套题的id),name,exid,imgpath,px)
     * @return
     */
    Integer copySecondTypes(List<SecondType> secondTypes);
    /**
     * 根据套题id查找套题
     *
     * @param seid
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    List<SubjectVo> getSubjectBySeId(Integer seid);

    /**
     * 删除一个或多个套题和题的关联
     * @author tsl
     * @date 2018/4/25 14:56
     * @param ids 删除关联对象id
     * @return
     */
    Integer deleterelateSubs(List<Integer> ids);

    /**
     * 添加一个或多个套题和题的关联
     * @author tsl
     * @date 2018/4/25 14:56
     * @param secondSubs 添加关联对象（seid，sid，sorder）集合
     * @return
     */
    Integer addRelateSub(List<SecondSub> secondSubs);
    /**
     *
     * 修改一个或多个套题和题的关联的排序
     * @author tsl
     * @date 2018/4/25 14:56
     * @param secondSubs （id，sorder）
     * @return
     */
    Integer modifyRelateSubs(List<SecondSub> secondSubs);
    /**
     * 查找所有题
     *
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    List<Subject> getSubjects();
    /**
     *  复制一个或多个套题到另一个套题里
     * @author tsl
     * @date 2018/4/25 9:40
     * @param sencondSubVos SencondSubVo(copyId(复制套题的id)的集合,copyId(复制到某套题的id))
     * @return
     */
    Integer copySecondTypesToSelf(SencondSubVo sencondSubVos);
    /**
     * 根据题目id查找题目
     *
     * @param id
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    Subject getSubjectById(Integer id);
    /**
     * 根据题目id题目所属的所有父级
     *
     * @param id
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    List<CartypeVoEnhance> getSubjectBySubId(Integer id);
    /**
     * 查找对应类型的所有题
     *@param  type 0单选 1判断 2多选
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    List<Subject> getSubjectsByType(Integer type);
    /**
     * 关键词或者ID查找题
     *@param  keyCode 查询条件
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    List<Subject> seekSubjects(String keyCode);
    /**
     * 删除一个或多个题
     *
     * @param ids
     * @return
     * @author tsl
     * @date 2018/4/24 14:31
     */
    Integer removeSubjects(List<Integer> ids);
}
